kinect动作捕捉初探(下) 您所在的位置:网站首页 mmd joint有什么用 kinect动作捕捉初探(下)

kinect动作捕捉初探(下)

2023-08-22 11:16| 来源: 网络整理| 查看: 265

      bvh是一种动作数据文件,诸如kinect动作捕捉的数据就可以以bvh方式保存。我们可以直接把bvh导入到cinema 4D中:

        由此我们可以看到bvh的实质就是一套骨骼在各个关节三向旋转数据的关键帧,及腰部(重心)处三向位移数据的关键帧之和。简而言之,各个关节的旋转及腰部的位移可以定义一个角色动画。我们把这种定义称为fk模式,又名“芭比娃娃”模式。这是与ik模式(提线木偶)对应而言的。

        我们现在的问题在于,我们如何把所或得的bvh文件应用到我们绑好骨骼的角色模型上去,一种思路是将bvh转化为可直接应用到mmd的vmd文件,可以在bilibili搜到相关教程。但因为up更熟悉使用c4d,我们来讲如何在c4d中的应用。

        当然首先我们要把一个角色模型直接复制到已导入bvh的c4d工程上去。这会存在一个比例问题。我们可以观察bvh骨腰部高度对比已有角色模型的腰部高度比例,然后在编辑>工程设置中修改工程整体比例,然后再复制模型:

右边project scale可修改整体比例

        我们最好不要直接缩放已绑好骨骼的模型,这可能会出现一些bug,尤其在带有ik的情况下。

        接下来,我们要应用c4d中的约束标签,顾名思义,类似AE中的父子关系,它可以始两个物体做同步运动。我们在T姿态下,点中模型关节,选择标签>角色标签>约束,并在约束中点选psr约束,它就给模型关节加上了psr约束标签。

        我们在psr中勾上offset,在target中勾上R(旋转),当然腰关节需要勾上P(位移)和R(旋转),然后通过右下角的箭头点选bvh对应关节为目标。依据我们之前的fk定义,我们把主要的十几个关节一一约束到有关键帧的bvh骨骼上,并通过offset调整一些轴向和同步偏差,两套骨骼就能做同样的动作了。

psr约束,勾上maintain original,勾上r(腰部勾上p和r),箭头点选目标关节

         但是,假如我们有几套bvh数据,如果分别约束到模型,就需要每次一一约束关节,稍显麻烦,为简化操作。我们可以基于这样一个逻辑:先约束好一个bvh作为容器,每次需要更换新的动作数据时,将新的bvh的关键帧,直接复制给容器bvh。

        这样做的前提是两套bvh骨拥有完全一样的骨骼名称和顺序,当然,如果你是同样方法获得的数据,它肯定是一样的。然后,我们还需至少完成两个操作:1、选中bvh骨骼的所有关节。2、选中所有关节在时间线上的所有关键帧。

        操作1有两个方法,直接右键关节,选全部展开,点第一个关节,按住shift点最后一个关节,即可全选。或左上角选择工具矩形框选,预览界面直接框选骨骼。操作2则需要在1的前提下,时间线下的数字先调整时间线长度,然后在一排关键帧后面处,点击鼠标不动,左侧轻拉,即可拉出一段白条,选中所有关键帧。(蛋疼的操作)。

        那么在以上操作基础上,我们删除容器bvh所有关键帧,选中新bvh所有关键帧,crtl c,选中容器骨骼bvh所有关节,crtl v,即可。

        以上操作虽然我们成功把bvh动作映射到了已有模型上,并可通过复制关键帧更换动作。但这都需要依赖bvh的存在,原模型骨骼并没有任何关键帧,一旦删去bvh,模型将静止在删去的姿态。为了获得关键帧,我们需要在窗口中,打开时间线窗口,点中骨骼,功能(functions)>烘焙物体,模型骨骼将自动获得所有动作的关键帧,这时就可以把我们的模型复制到应用动画的场景中去了。

        

时间线窗口>功能>烘焙物体

        有些时候,我们更习惯于使用带有ik及控制器的模型,以方便动画的手动调节。这时候需要先将ik控制器约束到关节。(比如手部ik约束到腕关节),然后烘焙动画,结束后删去约束,就可烘焙出ik模式的动作。这其中可能要注意些优先级的问题,可以搜索一下c4d优先级的调整,这里就不再说了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有